home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 June / CHIP Haziran 2001.iso / prog / haziran / 19 / setup.exe / data.z / kpstdlib.h < prev    next >
C/C++ Source or Header  |  2001-04-11  |  6KB  |  179 lines

  1. #ifndef _KPSTDLIB_H_
  2. #define _KPSTDLIB_H_
  3.  
  4. #ifndef __KERNEL__
  5.     #define __KERNEL__
  6. #endif
  7.  
  8. #if !defined(UNIX) && (defined(SOLARIS) || defined(LINUX))
  9.     #define UNIX
  10. #endif
  11.  
  12. #if defined(WIN40)
  13.     #ifndef WIN95
  14.         #define WIN95
  15.     #endif
  16. #endif
  17.  
  18. #if defined(UNIX)
  19.     #include "windrvr.h" // for use of KDGB DWORD parameter.
  20. #endif
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif  // __cplusplus 
  25.  
  26. #if defined(WIN95) || defined(WINNT) || defined(WINCE) || defined(WIN32)
  27.     typedef unsigned long ULONG;
  28.     typedef unsigned short USHORT;
  29.     typedef unsigned char UCHAR;
  30.     typedef long LONG;
  31.     typedef short SHORT;
  32.     typedef char CHAR;
  33.     typedef ULONG DWORD;
  34.     typedef USHORT WORD;
  35.     typedef void *PVOID;
  36.     typedef char *PCHAR;
  37.     typedef PVOID HANDLE;
  38.     #if !(defined(WIN95) && defined(NOBASEDEFS))
  39.         typedef ULONG BOOL;
  40.     #endif
  41. #elif defined(UNIX) 
  42.     #ifndef __cdecl
  43.         #define __cdecl 
  44.     #endif
  45. #endif
  46.  
  47. #if defined(WIN95) || defined(WINNT) || defined(WINCE) || defined(WIN32)
  48.     #define OS_needs_copy_from_user(fKernelMode) FALSE
  49.     #define COPY_FROM_USER(dst,src,n) memcpy(dst,src,n)
  50.     #define COPY_TO_USER(dst,src,n) memcpy(dst,src,n)
  51. #elif defined(SOLARIS)
  52.     #define OS_needs_copy_from_user(fKernelMode) (!fKernelMode)
  53.     #define COPY_FROM_USER(dst,src,n) copyin(src,dst,n)
  54.     #define COPY_TO_USER(dst,src,n) copyout(src,dst,n)
  55. #elif defined(LINUX)
  56.     #define OS_needs_copy_from_user(fKernelMode) (!fKernelMode && LINUX_need_copy_from_user())
  57.     #define COPY_FROM_USER(dst,src,n) LINUX_copy_from_user(dst,src,n)
  58.     #define COPY_TO_USER(dst,src,n) LINUX_copy_to_user(dst,src,n)
  59. #endif
  60.  
  61. #if defined(WINCE)
  62.     #define CE_map_ptr(ptr,fKernelMode) (fKernelMode ? (ptr) : (MapPtrToProcess((ptr),GetCallerProcess())))
  63. #else
  64.     #define CE_map_ptr(ptr,fKernelMode) (ptr)
  65. #endif
  66.  
  67. #define COPY_FROM_USER_OR_KERNEL(dst, src, n, fKernelMode) \
  68. { \
  69.     if (OS_needs_copy_from_user(fKernelMode)) \
  70.         COPY_FROM_USER(dst, src, n); \
  71.     else \
  72.         memcpy (dst, CE_map_ptr(src,fKernelMode), n);  \
  73. }
  74.  
  75. #define COPY_TO_USER_OR_KERNEL(dst, src, n, fKernelMode) \
  76. { \
  77.     if (OS_needs_copy_from_user(fKernelMode)) \
  78.         COPY_TO_USER(dst, src, n); \
  79.     else \
  80.         memcpy (CE_map_ptr(dst,fKernelMode), src, n);  \
  81. }
  82.  
  83. #ifndef FALSE
  84. #define FALSE 0
  85. #endif
  86.  
  87. #ifndef TRUE
  88. #define TRUE 1
  89. #endif
  90.  
  91. #ifndef NULL
  92. #define NULL 0
  93. #endif
  94.  
  95. int __cdecl KDBG(DWORD dwLevel, DWORD dwSection, const char *format, ...);
  96.  
  97. #if defined(WIN95)
  98.     // Define varargs ANSI style
  99.  
  100.     #define _INTSIZEOF(n)    ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
  101.  
  102.     #define va_start(ap,v) ap = (char *)&v + _INTSIZEOF(v)
  103.     #define va_arg(ap,t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
  104.     #define va_end(ap) ap = (char *)0
  105.     typedef char * va_list;
  106.  
  107.     void* __cdecl memchr(void *buf, int c, unsigned int count);
  108.     void* __cdecl memmove(void *dest, void *src, unsigned int count);
  109.     int __cdecl sscanf(const char* buf, const char* fmt, ...);
  110.     long __cdecl strtoul(const char* s, char** pend, int radix);
  111.     char* __cdecl _ultoa(unsigned long u, char* s, int radix);
  112.     long __cdecl strtol(const char* s, char** pend, int radix);
  113.     char* __cdecl _ltoa(long value, char* s, int radix);
  114.     long __cdecl atol(const char* s);
  115.     char* __cdecl strstr( const char* s1, const char* s2);
  116.     char* __cdecl strrchr( const char* s, int c);
  117.     char* __cdecl _strlwr(char* s);
  118.     char* __cdecl _strupr( char* s);
  119.     char* __cdecl strncpy( char* s1, const char* s2, unsigned int c);
  120.     int __cdecl strncmp(const char* s1, const char* s2, unsigned int c);
  121.     char* __cdecl strncat( char* s1, const char* s2, unsigned int c);
  122.     unsigned int __cdecl strlen( const char* s);
  123.     int __cdecl _stricmp( const char* s1, const char* s2);
  124.     int __cdecl strcmp( char* s1, const char* s2);
  125.     char* __cdecl _strdup( const char* s);
  126.     unsigned int __cdecl strcspn( const char* s1, const char* s2);
  127.     char* __cdecl strchr( const char* s, int c);
  128.     char* __cdecl strcat( char* d, const char* s);
  129.     int __cdecl sprintf(char *buffer, const char *format, ...);
  130.     void __cdecl dprintf(const char *format, ...);
  131.     void* __cdecl malloc(unsigned int size);
  132.     void* __cdecl calloc(unsigned int num, unsigned int size);
  133.     void* __cdecl realloc(void *memblock, unsigned int size);
  134.     int __cdecl _snprintf(char *buffer, unsigned int Limit, const char *format, ...);
  135.     int __cdecl _vsnprintf(char *buffer, unsigned int Limit, const char *format, va_list Next);
  136.     int __cdecl vsprintf(char *buffer, const char *format, va_list Next);
  137.     int __cdecl memcmp(const char* s1, const char* s2, unsigned int c);
  138.     void* __cdecl memset( void *dest, int c, unsigned int count);
  139.     void* __cdecl memcpy( void *dest, const void *src, unsigned int count);
  140.     int toupper(int c);
  141.     int tolower(int c);
  142.  
  143. #endif // WIN95
  144.  
  145. char* __cdecl strcpy( char* s1, const char* s2);
  146. void* __cdecl malloc(unsigned int size);
  147. void __cdecl free(void* buf);
  148.  
  149. #if defined(SOLARIS)
  150.     #if defined(SPARC)
  151.         #include <sys/types.h>
  152.         // since stacture copy is impleneted in gcc with memcpy on SPARC 
  153.         // this is needed
  154.         static void *memcpy(void *s1, const void *s2, size_t n)
  155.         {
  156.             bcopy( s2, s1, n );
  157.             return s1;
  158.         }
  159.  
  160.         static void *memset(void *s, int c, size_t n)
  161.         {
  162.             char *p = s;
  163.             
  164.             for( ; n ; --n )
  165.                 *p++ = (char)c ;
  166.         }
  167.     #else
  168.         #define memset(x, y, z) bzero(x, z)
  169.         #define memcpy(dst, src, size)  bcopy( src, dst, size)
  170.     #endif
  171. #endif 
  172.  
  173. #ifdef __cplusplus
  174. }
  175. #endif  // __cplusplus 
  176.  
  177. #endif // _KPSTDLIB_H_
  178.  
  179.